在深入 Kotlin Collection 之前,我們需要先對 Kotlin 語法有基本的認識。因此在這篇文章裡,要先迅速讓大家學會 Kotlin 的基礎語法。假如你已經接觸過 Kotlin,這篇的內容可以選擇性跳過;若你沒有寫過 Kotlin,則為了後續進階內容,請不要跳過喔!
在 Kotlin 裡宣告變數的語法分為 5 個部份:
var、不可變變數則用 val
: 與前面的變數名稱做區隔= 符號將右邊的值指定給左邊的變數val myName: String = "Shengyou Fan"
var myPoint: Int = 100
Kotlin 是一個強型別(Strong Type)的程式語言,在宣告變數前要養成習慣先決定這個變數是可變(Mutable)或不可變(Immutable)以及這個變數的型別(Type)是什麼?而 IntelliJ IDEA 也會在編輯過程中時時幫你檢查。
Kotlin 常用的資料型別包括:
String(字串)- 以 " 包住的文字Char(字元)- 以 ' 包住的字元Boolean(布林)- 只能儲存 true 或是 false
Byte
Short
Int
Long
Float
Double
Array(陣列)- 將多個有關係的資料放在一個容器裡,方便做資料處理。Array 及其他集合類型包括 List、Set、Map 就是這個系列文的主角。提醒一下,在 Kotlin 的世界裡,所有東西都是物件(Object),我們可以隨時呼叫該物件身上的屬性和方法。不過和 Java 不同,Kotlin 沒有 Primitive Types,通通都是大寫字開頭的 Reference Types,在 JVM 上執行時,Kotlin 編譯器會為了效能自動幫你轉換。
Kotlin 支援 Top-Level Function,要宣告一個函數很簡單,包括 6 個部份:
public
fun 做為函數宣告的開頭: 隔開{ } 包住所有函數要做的動作fun greeting(name: String = "Everyone"): String {
return "Hello, $name"
}
呼叫函數的方式很簡單,直接寫函數的名字加上 () 即可,若有需要傳入參數的話就把參數準備好放在 ( ) 之間。
greeting("Shengyou") // 畫面輸出 Hello, Shengyou
Kotlin 常用的流程控制有 if、for 及 when,寫法如下:
// if 表達式
if (condition) {
// ...
} else if (condition) {
// ...
} else {
// ...
}
// when 表達式
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> {
print("x is neither 1 nor 2")
}
}
// for 迴圈
for (items: Int in item) {
// ...
}
運算子的部份也雷同,包括比較運算子和邏輯運算子:
< - 小於<= - 小於等於> - 大於>= - 大於等於== - 等於!= - 不等於=== - 兩者的記憶體位置相同!== - 兩者的記憶體位置不同&& - 且|| - 或! - 非in - 在某個 Range 間Kotlin 在流程控制的語法設計上跟其他語言差異不大,比較特別的應該是 when。語法看起來跟其他程式語言裡的 swtich 很像,不過在語意上更清楚、語法上也更彈性,善加利用的話可以寫出表達力更好的程式碼喔!
在這篇文章裡,只把 Kotlin 最基本的語法簡單提示一下,許多更簡潔的寫法等到後續用到時會再做進一步的介紹。從下一章開始,筆者會介紹 4 個常用的 Collection 類別,開始探索 Kotlin Collection!